A file server is a network-connected processing system that stores and manages shared files in a set of storage devices (e.g., disk drives) on behalf of one or more clients. The disks within a file system are typically organized as one or more groups of Redundant Array of Independent/Inexpensive Disks (RAID). One configuration in which file servers can be used is a network attached storage (NAS) configuration. In a NAS configuration, a file server can be implemented in the form of an appliance that attaches to a network, such as a local area network (LAN) or a corporate intranet. An example of such an appliance is any of the Filer products made by Network Appliance, Inc. in Sunnyvale, Calif.
Another specialized type of network is a storage area network (SAN). A SAN is a highly efficient network of interconnected, shared storage devices. Such devices are also made by Network Appliance, Inc. One difference between NAS and SAN is that in a SAN, the storage appliance provides a remote host with block-level access to stored data, whereas in a NAS configuration, the file server normally provides clients with only file-level access to stored data.
Current file server systems used in NAS environments are generally packaged in either of two main forms: 1) an all-in-one custom-designed system that is essentially just a standard computer with built-in disk drives, all in a single chassis (enclosure); or 2) a modular system in which one or more sets of disk drives, each in a separate chassis, are connected to an external file server “head” in another chassis. Examples of all-in-one file server systems are the F8x, C1xxx and C2xxx series Filers made by Network Appliance of Sunnyvale, Calif.
In this context, a “head” means all of the electronics, firmware and/or software (the “intelligence”) that is used to control access to storage devices in a storage system; it does not include the disk drives themselves. In a file server, the head normally is where all of the “intelligence” of the file server resides. Note that a “head” in this context is not the same as, and is not to be confused with, the magnetic or optical head used to physically read or write data to a disk.
In a modular file server system, the system can be built up by adding multiple chassis in some form of rack and then cabling the chassis together. The disk drive enclosures are often called “shelves” and, more specifically, “just a bunch of disks” (JBOD) shelves. The term JBOD indicates that the enclosure essentially contains only physical storage devices and no electronic “intelligence”. Some disk drive enclosures include one or more RAID controllers, but such enclosures are not normally referred to as “JBOD” due to their greater functional capabilities. A modular file server system is illustrated in FIG. 1 and is sometimes called a “rack and stack” system. In FIG. 1, a file server head 1 is connected by external cables to multiple disk shelves 2 mounted in a rack 3. The file server head 1 enables access to stored data by one or more remote client computers (not shown) that are connected to the head 1 by external cables. Examples of modular heads such as head 1 in FIG. 1 are the FAS800 and FAS900 series filer heads made by Network Appliance.
A problem with the all-in-one type of system is that it is not very scalable. In order to upgrade the server head, the user needs to swap out the old system and bring in a new one, and then he has to physically move drives from the old enclosure to the new enclosure. Alternatively, the user could copy data from the old to the new, however, doing so requires double the disk capacity during the copy operation (one set to hold the old source data and one set to hold the new data) and a non-trivial amount of time to do the copying. Neither of these approaches is simple or easy for a user to do.
A problem with the modular type of system is that it is not cost-effective for smaller, minimally-configured storage systems. There is a fixed overhead of at least two chassis (one head plus one disk shelf) with their power supplies and cooling modules as well as administrative overhead associated with cabling one chassis to the other and attendant failures associated with cables. In order to make each head as modular as possible, the head itself typically includes a motherboard and one or more input/output (I/O) boards. The infrastructure to create this modularity is amortized across the fully configured systems but represents high overhead for minimally configured systems.
What is needed, therefore, is a network storage system which overcomes these disadvantages.